报文的类型是有很多种的,常用的有定长报文、键值报文、XML报文、JSON报文、二进制报文等,以下就对这几种报文做相应的介绍,并配简单的示例。 API管理>API注册 >接口发布中,各种类型的服务都可以配置报文转换规则,可以自定义发送业务服务的请求头、请求报文和业务服务返回客户端的响应头、响应报文。

# 报文转换场景

请求报文:

{"id":"33","name":"名称1","isbn":"isbn1","author":"作者1","price":45.32}

响应报文:

{
   "id": "1",
   "name": "哈哈哈名字",
   "address": "地址1",
   "books":    {
      "1":       {
         "id": "1",
         "name": "名称1",
         "isbn": "isbn1",
         "author": "作者1",
         "price": 45.32
      },
      "2":       {
         "id": "2",
         "name": "名称2",
         "isbn": "isbn2",
         "author": "作者2",
         "price": 33.3
      }
   }
}

# 场景1:将请求报文“id”换成“newId”

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文体 $.id $.newId

响应报文转换结果如下:
image2020-6-11_18_0_37.png

# 场景2:报文books.1新增 ”newKey”:”newValue”

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文体 $.books.1.newKey newValue

响应报文转换结果如下:
image2020-6-11_18_2_30.png

# 场景3:删除报文中books.1.author的键值对

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
$.books.1.newKey newValue

响应报文转换结果如下:
image2020-6-12_16_10_21.png

# 场景4:将books.1.author的value修改成张三

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文体 $.books.1.author 张三

响应报文转换结果如下:
image2020-6-12_16_13_54.png

# 场景5:将books.1.author的value修改成请求头Author的值Nike

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文体 $.books.1.author 张三

转换结果,响应报文:
image2020-6-12_16_17_0.png
响应头:
image2020-8-4_16_13_15.png

# 场景6:将books.1.author的value修改成books.2.author的value

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文体 $.books.1.author $.books.2.author

响应报文转换结果如下:
image2020-6-12_16_36_19.png

# 场景7:替换books.1.author的键值对,修改后新的Key是‘$.books.1.newAuthor’Value是books.2.author的value

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文体 $.books.1.author $.books.1.newAuthor $.books.2.author

响应报文转换结果如下:
image2020-6-12_16_39_6.png

# 场景8:修改请求头C-Key的值为“cvalue”

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文头 C-Key $.books.1.newAuthor cvalue

转换结果,客户端请求头:
image2020-8-4_16_13_41.png
服务端后台打印请求头:
image2020-6-12_16_48_47.png

# 场景9:修改请求头C-Key的值改为请求报文中id字段的value值

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文头 C-Key $.id

转换结果,客户端请求头:
image2020-8-4_16_14_1.png
服务端后台打印请求头:
image2020-6-12_17_56_35.png

# 场景10:删除请求头C-Key

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文头 C-Key

转换结果,客户端请求头:
image2020-8-4_16_14_22.png
服务端后台打印请求头:
image2020-6-12_17_58_53.png

# 场景11:添加请求头”X-Key”:”xvalue”

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文头 X-Key xvalue

转换结果,客户端请求头:
image2020-8-4_16_14_46.png
服务端后台打印请求头:
image2020-6-12_18_0_44.png

# 场景12:替换请求头C-Key,替换为”X-Key”:”xvalue”

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文头 C-Key X-Key xvalue

转换结果,客户端请求头:
image2020-8-4_16_15_2.png
服务端后台打印请求头:
image2020-6-12_18_2_22.png

# 场景13:当新增的请求头已存在时,在原先的基础上新增一个value

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文头 C-Key 3333333

转换结果,客户端请求头
image2020-8-4_16_15_31.png
服务端后台打印请求头:
image2020-6-12_18_4_9.png

# 场景14:请求报文xml转json 响应报文json转xml

请求报文转换 XML转JSON
响应报文转换 JSON转XML

转换结果,客户端请求报文如下:

<root><id>33</id><name>名称1</name><isbn>isbn1</isbn><author>作者1</author><price>45.32</price></root>

响应报文转换结果如下:

<data contentType="text/xml;charset=UTF-8" contentLength="289"><![CDATA[<root><address>地址1</address><books><1><author>作者1</author><price>45.32</price><isbn>isbn1</isbn><name>名称1</name><id>1</id></1><2><author>作者2</author><price>33.3</price><isbn>isbn2</isbn><name>名称2</name><id>2</id></2></books><name>哈哈哈名字</name><id>1</id></root>]]></data>

# 场景15:XML格式响应报文转换

HTTP测试服务的响应报文如下
image2020-8-4_16_49_18.png
报文转换配置实现【/library/books/entry[1]/value/@name】的值赋给【/library/name】 响应报文转换配置如下:

字段类型 字段名称 新字段名称 字段赋值 Value是否是变量
报文体 /library/name /library/books/entry[1]/value/@name

转换后的响应报文如下:
image2020-8-4_17_9_4.png